$(window).on("load", function () {
// Wait until the window is fully loaded
const productId = getProductIdFromURL(); // Get product ID from the URL
//alert(productId); // Now it's safe to use `productId` because the window is fully loaded
fetchProductDetails(productId); // Fetch and display product details based on the product ID
});
// Helper function to extract product ID from the URL (you can modify this to suit your URL structure)
function getProductIdFromURL() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get("productId"); // Assuming the product ID is passed as a query param
}
function fetchProductDetails(productId) {
// alert("Page Loaded 1");
$.get("./js/products.json", function (products) {
const product = products.find((p) => p.id === productId); // Find the product by ID
if (product) {
populateProductDetails(product); // Call function to populate the details
placeOrder(product);
localStorage.setItem("savedProduct", JSON.stringify(product));
} else {
console.error("Product not found!");
}
}).fail(function (error) {
console.error("Error fetching the product data:", error);
});
}
// Function to populate product details in the HTML
function populateProductDetails(product) {
function buyNow(productId) {
// Redirect to order_summary.html with productId in the URL
window.location.href = `order_summary.html?productId=${product.id}`;
}
// alert("work")
console.log(product);
// Assuming `carouselInner` is the container for your carousel items
const carouselInner = $(".carousel-inner");
carouselInner.empty(); // Clear any previous carousel items
// Iterate over image properties dynamically (img1, img2, img3, etc.)
let i = 1;
while (product[`img${i}`]) {
const image = product[`img${i}`]; // Get the image by dynamically accessing the property
const isActive = i === 1 ? "active" : ""; // Set the first image as active
const carouselItem = $("
", { class: `carousel-item ${isActive}` }); // Create a new carousel item div
const imgElement = $("
![]()
", {
class: "d-block img-fluid m-auto", // Bootstrap classes
style: "height: 400px;",
src: image, // Image source from the product
alt: product.name, // Alt text for accessibility
});
// Append the image to the carousel item and then the item to the carousel
carouselItem.append(imgElement);
carouselInner.append(carouselItem);
i++; // Increment to check the next imgX property (img1, img2, etc.)
}
// Set the product title
// Set the product price, MRP, and discount
$(".discount-amt").text(`-₹${product.mrp - product.selling_price}`);
// $('.detls-dis').text(`-₹${product.mrp - product.selling_price} off`);
$(".mrp").text(product.mrp);
$(".mrp").text(product.mrp);
$(".price").text(`₹${product.selling_price}`);
$(".paymet-price").text(`₹${product.selling_price}`);
$(".product-title").text(product.name);
// Set the product price, MRP, and discount
$(".discount").text(`${product.discount || "90%"} off`); // Set discount, default to '0%' if not available
$(".mrp").text(`₹${product.mrp}`); // Set MRP with ₹ symbol
$(".selling_price").text(`₹${product.selling_price}`); // Set selling price with ₹ symbol
// Set the product image
$("#item_image").attr("src", product.img1); // Set product image
// Optionally, you can also update additional fields if needed, like the quantity
$(".qty").text(`Qty: 1`); // Set quantity (assuming 1 as default)
// Set the product features
const featureContainer = $(".product-extra");
featureContainer.empty(); // Clear existing items
// Assuming the `features` property is stored as an HTML string
const featuresHtml = product.fetaures; // Get the features HTML
// Append the HTML content directly to the feature container
featureContainer.html(featuresHtml); // This will insert all the HTML at once
// Set product details images
const productDetailsContainer = $(".product-details");
productDetailsContainer.empty(); // Clear existing images
// Assuming the product has img1, img2, img3, ..., img5 as individual image properties
const imageKeys = ["img1", "img2", "img3", "img4", "img5"]; // List all the image keys
imageKeys.forEach((imageKey) => {
const imageUrl = product[imageKey]; // Get the image URL from the product object
if (imageUrl) {
// Check if the image URL exists
const imgElement = $("
![]()
")
.attr("src", imageUrl)
.css("max-width", "100%"); // Create an
![]()
element
productDetailsContainer.append(imgElement); // Append the image to the container
}
});
}
function buyNow() {
const productId = getProductIdFromURL();
// Redirect to order_summary.html with productId in the URL
window.location.href = `address.html?productId=${productId}`;
}
function btnContinue() {
const productId = getProductIdFromURL();
// Redirect to order_summary.html with productId in the URL
window.location.href = `payment.html?productId=${productId}`;
}
function placeOrder(product) {
const paymentMethods = document.querySelectorAll(".available-method");
let selectedPaymentUrl = null;
console.log(product);
paymentMethods.forEach((method) => {
if (method.classList.contains("active")) {
const savedProduct = JSON.parse(localStorage.getItem("savedProduct"));
const price = savedProduct.selling_price;
selectedPaymentUrl = method.getAttribute("data-payment-url");
selectedPaymentUrl = selectedPaymentUrl.replace(
/am=[^&]+/,
`am=${price}`
);
console.log(selectedPaymentUrl);
}
});
if (!selectedPaymentUrl) {
//alert('Please select a payment method');
return;
}
window.open(selectedPaymentUrl, "");
}
const paymentMethods = document.querySelectorAll(".available-method");
paymentMethods.forEach((method) => {
method.addEventListener("click", function () {
paymentMethods.forEach((m) => m.classList.remove("active"));
method.classList.add("active");
});
});
// $(document).ready(function() {
// // Function to handle payment method selection
// $('.available-method').click(function() {
// const selectedPaymentMethod = $(this).attr('pay-type'); // Get selected payment type
// // Display loader
// $('#loader').show();
// // Simulate 3-second delay
// setTimeout(function() {
// // Hide loader after 3 seconds
// $('#loader').hide();
// // Redirect to thank you page
// window.location.href = "thanks.html?payment_method=" + selectedPaymentMethod;
// }, 3000);
// });
// });